# -*- coding: utf-8 -*-
# @Author  : longbhu
# @Time    : 2025/9/22 11:32
# @Function:
import requests
import json
import os
from urllib.parse import unquote

# 发送GET请求获取JSON数据
url = "http://data.casearth.cn/api/getAllFileListBySdoId?sdoId=6123651428a58f70c2a51e49"
response = requests.get(url)

if response.status_code == 200:  # 网页状态码
    data = json.loads(response.text)  # 解析JSON数据
    file_info_list = data.get("文件信息列表", [])  # 获取文件信息列表，如果不存在则返回空列表

    # 你的用户名
    username = "827822792@qq.com"

    # 指定下载目录
    download_dir = r"D:\浏览器下载目录\全球土地利用数据"  # 替换储存路径

    # 创建下载目录（如果不存在）
    if not os.path.exists(download_dir):
        os.makedirs(download_dir)

    # 遍历文件信息并下载文件
    for file_info in file_info_list:
        file_id = file_info.get("id")
        file_name = file_info.get("filename")

        # 如果文件名包含非法字符，请进行适当的处理，以确保合法文件名
        download_url = f"http://data.casearth.cn/sdo/downloadOneFile?id={file_id}&username={username}"
        file_response = requests.get(download_url)

        if file_response.status_code == 200:
            # 构建文件路径
            file_path = os.path.join(download_dir, file_name)

            # 保存文件到指定目录
            with open(file_path, "wb") as file:
                file.write(file_response.content)
            print(f"文件 {file_name} 下载成功.")
        else:
            print(f"文件 {file_name} 下载失败. 状态码: {file_response.status_code}")
else:
    print(f"Failed to retrieve data. Status code: {response.status_code}")

print("下载完成！！！")
